home *** CD-ROM | disk | FTP | other *** search
- /*
- * client.c
- *
- * Basic client process for time accounting system, non-network version.
- * This process (and those that are linked to it) are run as commands
- * and send events to the server process.
- */
-
- #include <sys/types.h>
- #include <sys/socket.h>
- #include <netinet/in.h>
- #include <netdb.h>
- #include <stdio.h>
- #include "time_entry.h"
-
- main(argc, argv)
- int argc;
- char *argv[];
- {
-
- int skt_id, /* Socket descriptor */
- msg_sock, /* Socket that will accept messages */
- i,j;
-
- EVENT_TYPE event;
-
- struct sockaddr sa; /* Socket address structure */
- char buff[80];
-
- /*
- * Specify the socket domain and type we want...
- */
- skt_id = socket(AF_UNIX, SOCK_STREAM, 0);
- if(skt_id == -1){
- perror("Can't create socket");
- exit(1);
- }
-
- /*
- * Now set up the address structure and connect to the socket.
- */
- sa.sa_family = AF_UNIX;
- strcpy(sa.sa_data, SOCKET_NAME);
-
- if(connect(skt_id, &sa, sizeof(sa)) == -1){
- perror("Can't connect to socket");
- exit(1);
- }
-
- build_event(argv[0], &event);
-
- /*
- * Now, send the event
- */
-
- if(write(skt_id, &event, sizeof(event)) != sizeof(event)){
- perror("Write");
- exit(1);
- }
-
- /* Cleanup */
- close(skt_id);
- exit(0);
- }
-
- build_event(a, e)
- char *a; /* Name process was invoked with */
- EVENT_TYPE *e; /* A time entry event */
- {
-
- if(!strcmp(a, "pi")) /* A PHONE_IN event */
- e->event_cd = PHONE_IN;
- else if(!strcmp(a, "po")) /* PHONE_OUT */
- e->event_cd = PHONE_OUT;
- /*
- * Check any other types...
- */
- else
- e->event_cd = SHUT_DOWN; /* Default is shut down */
-
- e->bill_flag = 'Y'; /* Billable is the default */
-
- /*
- * Code here to get the system time (e->event_st), and the
- * login name of the user (e->logname). For now, let's just
- * hard code something...
- */
- e->event_st = 0;
- strcpy(e->logname, "bryang");
- }
-
-
-
-
-